#include<iostream>
#include<unistd.h>
#include<cerrno>
#include<string.h>
using namespace std;

int main()
{
    int fds[2];
    //创建管道
    int n=pipe(fds);
    if(n!=0)
    {
        //创建管道文件失败,翻译错误码
        cout<<"pipe error:"<<errno<<"."<<strerror(errno)<<endl;
    }

    //创建子进程
    int m=fork();
    if(m==-1)
    {
        perror("fork()");
        exit(-1);
    }
    if(m==0)
    {
        //子进程
        close(fds[1]);
        char buffer[1024];
        read(fds[0],buffer,sizeof(buffer)-1);
        buffer[1023]='0';
        printf("%s\n",buffer);
        close(fds[0]);
    }
    close(fds[0]);
    const char*buffer="i am father";
    write(fds[1],buffer,strlen(buffer));

    close(fds[1]);

}
